// 方法1
// type Trunc<
//   T extends string | number,
//   Result extends string = ""
// > = `${T}` extends `${infer F}${infer R}`
//   ? F extends "."
//     ? Result
//     : Trunc<R, `${Result}${F}`>
//   : Result;

// 方法2
type Trunc<T extends string | number> =
  `${T}` extends `${infer F}${"."}${infer R}` ? F : `${T}`;
